package com.cmc.cloud.cmclink.doc.convert;

import com.cmc.cloud.cmclink.doc.api.document.req.so.CntrAndFlexiBaseVO;
import com.cmc.cloud.cmclink.doc.entity.SpecialCargoFlexiDO;
import com.cmc.cloud.cmclink.doc.vo.specialcargoflexivo.SpecialCargoFlexiBaseVO;
import com.cmc.cloud.cmclink.doc.vo.specialcargoflexivo.SpecialCargoFlexiCreateReqVO;
import com.cmc.cloud.cmclink.doc.vo.specialcargoflexivo.SpecialCargoFlexiRespVO;
import com.cmc.cloud.cmclink.doc.vo.specialcargoflexivo.SpecialCargoFlexiUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 特种货审批flexi Convert
 *
 * @author 集运管理员
 */
@Mapper
public interface SpecialCargoFlexiConvert {

    SpecialCargoFlexiConvert INSTANCE = Mappers.getMapper(SpecialCargoFlexiConvert.class);

    /**
     * 属性转换 convert
     *
     * @param bean
     * @return SpecialCargoFlexiDO
     */
    SpecialCargoFlexiDO convert(SpecialCargoFlexiCreateReqVO bean);

    /**
     * 属性转换 convert
     *
     * @param bean
     * @return SpecialCargoFlexiDO
     */
    SpecialCargoFlexiDO convert(SpecialCargoFlexiBaseVO bean);

    /**
     * 属性转换 convert
     *
     * @param bean
     * @return SpecialCargoFlexiDO
     */
    SpecialCargoFlexiDO convertApi(com.cmc.cloud.cmclink.doc.api.document.req.so.SpecialCargoFlexiBaseVO bean);


    /**
     * 属性转换 convert
     *
     * @param bean
     * @return SpecialCargoFlexiDO
     */
    SpecialCargoFlexiDO convert(SpecialCargoFlexiUpdateReqVO bean);

    /**
     * 属性转换 convert
     *
     * @param bean
     * @return SpecialCargoFlexiRespVO
     */
    SpecialCargoFlexiRespVO convert(SpecialCargoFlexiDO bean);

    /**
     * 属性转换 convert
     *
     * @param list
     * @return List<SpecialCargoFlexiRespVO>
     */
    List<SpecialCargoFlexiRespVO> convertList(List<SpecialCargoFlexiDO> list);

    /**
     * 属性转换 convert
     *
     * @param list
     * @return
     */
    List<com.cmc.cloud.cmclink.doc.vo.special.externalapivo.CntrAndFlexiBaseVO> convertApiList(List<CntrAndFlexiBaseVO> list);

    /**
     * 属性转换
     *
     * @param bean
     * @return
     */
    com.cmc.cloud.cmclink.doc.api.document.req.so.SpecialCargoFlexiBaseVO convertSpecialCargoFlexiBaseVo(SpecialCargoFlexiDO bean);

}
